/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ipartek.formacion.gestformwww.modelo.beans;

import java.util.ResourceBundle;

/**
 *
 * @author JonMi y Jorge
 */
public class FiltroCorreo {
    
    private ResourceBundle bundle;

    private int canId;
    private int conId;
    private String fechacom;
    private String fechafin;
    private String columnafiltrar;
    private String orden;
    private int pagsiguiente;
    private int elementospag;
    private String asunto;
    private String destinatario;
    private boolean estado;

    public FiltroCorreo(ResourceBundle bundle, String fechacom, String fechafin, String columnafiltrar, String orden, int pagsiguiente, int elementospag, String asunto, String destinatario, boolean estado) {
        this.bundle = bundle;
        this.fechacom = fechacom;
        this.fechafin = fechafin;
        this.columnafiltrar = columnafiltrar;
        this.orden = orden;
        this.pagsiguiente = pagsiguiente;
        this.elementospag = elementospag;
        this.asunto = asunto;
        this.destinatario = destinatario;
        this.estado = estado;
    }

    public FiltroCorreo(ResourceBundle bundle) {
        this.bundle = bundle;
        this.elementospag = Integer.parseInt(bundle.getString("numRegPagCorreo")); //falta mapear
    }

    public int getCanId() {
        return canId;
    }

    public void setCanId(int canId) {
        this.canId = canId;
    }

    public int getConId() {
        return conId;
    }

    public void setConId(int conId) {
        this.conId = conId;
    }

    public String getAsunto() {
        return asunto;
    }

    public void setAsunto(String asunto) {
        this.asunto = asunto;
    }

    public ResourceBundle getBundle() {
        return bundle;
    }

    public void setBundle(ResourceBundle bundle) {
        this.bundle = bundle;
    }

    public String getColumnafiltrar() {
        return columnafiltrar;
    }

    public void setColumnafiltrar(String columnafiltrar) {
        this.columnafiltrar = columnafiltrar;
    }

    public String getDestinatario() {
        return destinatario;
    }

    public void setDestinatario(String destinatario) {
        this.destinatario = destinatario;
    }

    public int getElementospag() {
        return elementospag;
    }

    public void setElementospag(int elementospag) {
        this.elementospag = elementospag;
    }

    public boolean isEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public String getFechacom() {
        return fechacom;
    }

    public void setFechacom(String fechacom) {
        this.fechacom = fechacom;
    }

    public String getFechafin() {
        return fechafin;
    }

    public void setFechafin(String fechafin) {
        this.fechafin = fechafin;
    }

    public String getOrden() {
        return orden;
    }

    public void setOrden(String orden) {
        this.orden = orden;
    }

    public int getPagsiguiente() {
        return pagsiguiente;
    }

    public void setPagsiguiente(int pagsiguiente) {
        this.pagsiguiente = pagsiguiente;
    }
 public String getSQL()
    {
        String sql = "";
        String filtro = "ORDER BY correo.CorFecha";
        String and = "";
        String where = " WHERE ";
        if (columnafiltrar != null && !columnafiltrar.trim().equals("")) {
            String columna = bundle.getString(columnafiltrar);
            if (columna != null && !columna.trim().equals("")) {
                filtro = "ORDER BY " + columna;
                if (orden != null && !orden.trim().equals("")) {
                    if (orden.trim().equals("ASC") || orden.trim().equals("DESC")) {
                        filtro = filtro + " " + orden;
                    }
                }
            }
        }
        sql="Select Correo.CorId,Correo.CorAsunto,"
           + "Correo.CorCuerpo,Correo.CorDestina,"
           + "Correo.CorFecha,Correo.CorEnviado"
           + " from Correo left join CorreoCan "
           + "On Correo.CorId=CorreoCan.CorId";

        if ((canId!=-1) || (conId!=-1) ||
           (fechacom != null && !fechacom.trim().equals("")) ||
           (fechafin != null && !fechafin.trim().equals(""))||
           (asunto != null && !asunto.trim().equals("")) ||
           (destinatario != null && !destinatario.trim().equals(""))){
                 sql = sql + where;

                if (canId!=-1){
                     sql= sql + "canId="+canId;
                     if ((conId!=-1) ||
                       (fechacom != null && !fechacom.trim().equals("")) ||
                       (fechafin != null && !fechafin.trim().equals(""))||
                       (asunto != null && !asunto.trim().equals("")) ||
                       (destinatario != null && !destinatario.trim().equals(""))){
                         sql= sql +" and ";
                     }
                }
                if (conId!=-1){
                     sql= sql + "conId="+conId;
                     if ((fechacom != null && !fechacom.trim().equals("")) ||
                       (fechafin != null && !fechafin.trim().equals(""))||
                       (asunto != null && !asunto.trim().equals("")) ||
                       (destinatario != null && !destinatario.trim().equals(""))){
                         sql= sql +" and ";
                     }
                }
               if (fechacom != null && !fechacom.trim().equals("")){ //Si tiene fecha de inicio desde
                    sql = sql + "correo.CorFecha>='" + fechacom + "'";
                    if ((fechafin != null && !fechafin.trim().equals(""))||
                       (asunto != null && !asunto.trim().equals("")) ||
                       (destinatario != null && !destinatario.trim().equals(""))){
                             sql= sql +" and ";
                    }
                }
                if (fechafin != null && !fechafin.trim().equals("")){ //Si tiene fecha de inicio desde
                    sql = sql + "correo.CorFecha<='" + fechafin + "'";
                    if ((asunto != null && !asunto.trim().equals("")) ||
                       (destinatario != null && !destinatario.trim().equals(""))){
                             sql= sql +" and ";
                    }
                }
                if (asunto != null && !asunto.trim().equals("")){ //Si tiene fecha de inicio desde
                    sql = sql + "correo.corAsunto LIKE '%" + asunto + "%'";
                    if ((destinatario != null && !destinatario.trim().equals(""))){
                             sql= sql +" and ";
                    }
                }
                if (destinatario != null && !destinatario.trim().equals("")){ //Si tiene fecha de inicio desde
                    sql = sql + "correo.CorDestina LIKE '%" + destinatario + "%'";
                }
         }
        sql= sql + " " + filtro;
        return sql;
    }

}
